package com.example.couponservice.domain.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 优惠券实体类
 * 对应数据库中的coupon表
 *
 * @author czwa
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("coupon")
public class Coupon {
    /**
     * 优惠券ID，主键
     */
    private int id;

    /**
     * 优惠券名称
     */
    private String name;

    /**
     * 最低使用金额
     * 消费满该金额方可使用此优惠券
     */
    private double minAmount;

    /**
     * 优惠金额或折扣比例
     * 若为满减券，该值表示减免金额
     * 若为折扣券，该值表示折扣比例（如0.8表示8折）
     */
    private double value;

    /**
     * 优惠券开始时间
     */
    private LocalDateTime startTime;

    /**
     * 优惠券结束时间
     */
    private LocalDateTime endTime;

    /**
     * 优惠券描述信息
     */
    private String description;

    /**
     * 优惠券库存数量
     */
    private int stock;

    /**
     * 优惠券状态
     * 0: 禁用
     * 1: 启用
     */
    private int status;

    /**
     * 用户ID（非数据库字段）
     * 用于关联查询用户是否已领取该优惠券
     */
    @TableField(exist = false)
    private int uid;
}